package com.intelligent.service;

import com.intelligent.pojo.Equipment;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
* @author lenovo
* @description 针对表【equipment(设备信息表)】的数据库操作Service
* @createDate 2025-09-01 14:03:08
*/
public interface EquipmentService extends IService<Equipment> {

    /**
     * 分页查询设备（关联用户表）。
     * 仅当筛选条件非空时参与查询条件。
     *
     * @param page 分页对象
     * @param equipmentCode 设备编号（模糊匹配，可选）
     * @param equipmentName 设备名称（模糊匹配，可选）
     * @param username 设备负责人用户名（模糊匹配，可选）
     * @param status 状态 0启用 1禁用（精确匹配，可选）
     * @return 分页数据，包含设备负责人用户名
     */
    IPage<Equipment> pageEquipment(Page<Equipment> page,
                                   String equipmentCode,
                                   String equipmentName,
                                   String username,
                                   Integer status);

    /**
     * 根据ID查询设备（关联用户表）
     *
     * @param equipmentId 设备ID
     * @return 设备信息，包含设备负责人用户名
     */
    Equipment getEquipmentById(Long equipmentId);

    /**
     * 添加设备（设备编号自动生成）
     *
     * @param equipment 设备信息
     * @return 添加成功返回true，失败返回false
     */
    boolean addEquipment(Equipment equipment);

    /**
     * 修改设备
     *
     * @param equipment 设备信息
     * @return 修改成功返回true，失败返回false
     */
    boolean updateEquipment(Equipment equipment);

    /**
     * 删除设备
     *
     * @param equipmentId 设备ID
     * @return 删除成功返回true，失败返回false
     */
    boolean deleteEquipment(Long equipmentId);
}
